package com.zmj.sy.mom.srv.aps.bean.dto.staff;


import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.ObjectUtils;

import java.math.BigDecimal;
import java.util.Date;

@Getter
@Setter
public class StaffReqDto {
//
//    /**
//     * 工号
//     */
//    private String staffCode;
//
//    /**
//     * 姓名
//     */
//    private String staffName;
//

    private static final long serialVersionUID = 1L;
    // id
    @ApiModelProperty(value = "id")
    private Integer id;
    // 员工工号
    @ApiModelProperty(value = "员工工号")
    private String staffCode;
    // 员工姓名
    @ApiModelProperty(value = "员工姓名")
    private String staffName;
    // 员工类型 1 一般人员 2 班组长 3 技能工 4 计划员 5 集体作业账号 6 外协单位
    @ApiModelProperty(value = "员工类型  1 一般人员 2 班组长 3 技能工 4  计划员  5 集体作业账号 6 外协单位 7 AGV转运人员 8 套料人员")
    private Integer staffType;
    // 个人绩效工资
    @ApiModelProperty(value = "个人绩效工资")
    private Integer personalWages;
    // 个人基本工资
    @ApiModelProperty(value = "个人基本工资")
    private BigDecimal basicWages;
    // 身份类型: 1正式员工 2 外包员工
    @ApiModelProperty(value = "身份类型: 1正式员工  2 外包员工")
    private Integer identityType;
    // 所属单位
    @ApiModelProperty(value = "所属单位")
    private String companyName;
    // 班组id
    @ApiModelProperty(value = "班组id")
    private Integer teamId;
    // 职等职级id
    @ApiModelProperty(value = "职等职级id")
    private Integer gradeRankId;
    // 创建人
    @ApiModelProperty(value = "创建人")
    private String createBy;
    // 创建时间
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    // 修改人
    @ApiModelProperty(value = "修改人")
    private String updateBy;
    // 修改时间
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;
    // 删除标识 0正常 1删除
    @ApiModelProperty(value = "删除标识 0正常 1删除")
    private Integer delFlag;
    // 备注
    @ApiModelProperty(value = "备注")
    private String note;
    // 职等
    @ApiModelProperty(value = "职等")
    private String gradeName;
    // 职级
    @ApiModelProperty(value = "职级")
    private String rankNum;
    // 序列
    @ApiModelProperty(value = "序列")
    private String sequName;
    @ApiModelProperty(value = "部门名称")
    private String departName;
    @ApiModelProperty(value = "班组名称")
    private String teamName;
    @ApiModelProperty(value = "部门id")
    private Integer departId;
    @ApiModelProperty(value = "全场绩效工资")
    private Integer factoryWages;
    @ApiModelProperty(value = "团队绩效工资")
    private Integer teamWages;
    @ApiModelProperty(value = "有效工时")
    private BigDecimal validTime;
    @ApiModelProperty(value = "管理班组 ids")
    private String teamIds;
    @ApiModelProperty(value = "管理班组名称")
    private String teamNames;
    @ApiModelProperty(value = "账号状态  1 正常  2 事假  3 病假  9 离职  10 同步未配置")
    private Integer staffState;
    @ApiModelProperty(value = "评价人员工编号，多个用逗号分隔")
    private String assessScoreUser;
    @ApiModelProperty(value = "自动评价影响范围:1个人、2团队、3分厂，多个用逗号分隔")
    private String assessScoreRange;
    @ApiModelProperty(value = "标准作业有效时间")
    private BigDecimal standardValidTime;

    @ApiModelProperty(value = "工种")
    private String workerType;
    @ApiModelProperty(value = "个人绩效系数")
    private BigDecimal personalWagesCoefficient;
    @ApiModelProperty(value = "团队绩效系数")
    private BigDecimal teamWagesCoefficient;
    @ApiModelProperty(value = "全厂绩效系数")
    private BigDecimal factoryWagesCoefficient;
    @ApiModelProperty(value = "核算类型：0不固定，1个人绩效固定，2团队绩效固定，3全厂绩效固定。多个固定用逗号隔开")
    private String calculateType = "0";


    public Integer getStaffState() {
        if (ObjectUtils.isEmpty(staffState)) {
            return 1;
        }
        return staffState;
    }

    @ApiModelProperty(value = "推送飞书通知权限控制：0为不推送，1为推送")
    private Integer allocate;

    @ApiModelProperty(value = "pda推送权限控制：0为完全不推送数据，1为推送部分数据，2推送全部数据")
    private Integer pdaAuthority;


}
